package com.dlxj.service;

import java.util.Date;
import java.util.List;

import com.dlxj.entity.Patroltask;
import com.dlxj.entity.Receiptpatrol;
import com.dlxj.entity.User;
import com.dlxj.util.ConstClass;
import com.dlxj.util.PageBean;

public interface PatrolTaskService {

	/**
	 * 制定巡检任务
	 * 
	 * @param patroltask
	 *            巡检任务信息
	 * @param users
	 *            人员列表
	 * @return 状态码
	 */
	public int addPatrolTast(Patroltask patroltask, List<User> users);

	/**
	 * 查找待分配状态的任务
	 * 
	 * @return 返回巡检任务集合
	 */
	public List<Patroltask> findWaitStatePatrol();

	/**
	 * 根据状态和任务编号查找巡检任务
	 * 
	 * @param state
	 *            状态
	 * @param pid
	 *            任务编号
	 * @return 返回巡检任务集合
	 */
	public List<Patroltask> findTaskNoByPid(String state, String pid);

	/**
	 * 分配用户
	 * 
	 * @param tid
	 *            任务编号
	 * @param uids
	 *            用户
	 * @return 返回状态吗
	 */
	public int assignUser(String tid, String uids);

	/**
	 * 查找已分配状态的任务
	 * 
	 * @return 返回巡检任务集合
	 */
	public List<Patroltask> findAssignedList();

	/**
	 * 查找执行中状态的任务
	 * 
	 * @return 返回巡检任务集合
	 */
	public List<Patroltask> findExecutingList();

	/**
	 * 查找已完成状态的任务
	 * 
	 * @return 返回巡检任务集合
	 */
	public List<Patroltask> findFinishList();

	/**
	 * 根据状态、任务编号、用户ID查找任务
	 * 
	 * @param state
	 *            状态
	 * @param pid
	 *            任务编号
	 * @param uid
	 *            用户ID
	 * @return 返回巡检任务集合
	 */
	public List<Patroltask> findTaskNoByPidAndUid(String state, String pid,
			int uid);

	/**
	 * 根据编号执行任务
	 * 
	 * @param TaskNo
	 * @return 返回状态码
	 */
	public int executeTask(String TaskNo);

	/**
	 * 根据任务编号查找任务
	 * 
	 * @param no
	 *            任务编号
	 * @return 返回巡检任务对象
	 */
	public Patroltask findByTaskNo(String no);

	/**
	 * 确认任务缺陷
	 * 
	 * @param taskNo
	 *            任务编号
	 * @return 返回状态码
	 */
	public int sureTask(String taskNo);

	public PageBean statistics(Patroltask patroltask,
			Receiptpatrol receiptpatrol, Date sd, Date ed, int pageIndex,
			int pageSize);

	public String export(Patroltask patroltask, Receiptpatrol receiptpatrol,
			Date sd, Date ed);

}
